package com.ruoyi.system.service.impl;

import java.util.ArrayList;
import java.util.List;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.system.domain.SysUserRole;
import com.ruoyi.system.mapper.SysUserRoleMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.system.mapper.SysManagerMapper;
import com.ruoyi.system.domain.SysManager;
import com.ruoyi.system.service.ISysManagerService;

/**
 * 系统管理员Service业务层处理
 * 
 * @author ruoyi
 * @date 2021-09-18
 */
@Service
public class SysManagerServiceImpl implements ISysManagerService 
{
    @Autowired
    private SysManagerMapper sysManagerMapper;

    @Autowired
    private SysUserRoleMapper userRoleMapper;

    /**
     * 查询系统管理员
     * 
     * @param userId 系统管理员ID
     * @return 系统管理员
     */
    @Override
    public SysManager selectSysManagerById(Long userId)
    {
        return sysManagerMapper.selectSysManagerById(userId);
    }

    /**
     * 查询系统管理员列表
     * 
     * @param sysManager 系统管理员
     * @return 系统管理员
     */
    @Override
    public List<SysManager> selectSysManagerList(SysManager sysManager)
    {
        return sysManagerMapper.selectSysManagerList(sysManager);
    }

    /**
     * 新增系统管理员
     * 
     * @param sysManager 系统管理员
     * @return 结果
     */
    @Override
    public int insertSysManager(SysManager sysManager)
    {
        sysManager.setCreateTime(DateUtils.getNowDate());
        int rows = sysManagerMapper.insertSysManager(sysManager);
        // 新增与角色管理
        insertManagerRole(sysManager);
        return rows;
    }

    /**
     * 新增学员角色信息
     *
     * @param sysManager 用户对象
     */
    public void insertManagerRole(SysManager sysManager)
    {
        // 新增学员与角色管理
        List<SysUserRole> list = new ArrayList<SysUserRole>();
        SysUserRole ur = new SysUserRole();
        ur.setUserId(sysManager.getUserId());
        ur.setRoleId(6L);
        list.add(ur);
        if (list.size() > 0)
        {
            userRoleMapper.batchUserRole(list);
        }
    }

    /**
     * 修改系统管理员
     * 
     * @param sysManager 系统管理员
     * @return 结果
     */
    @Override
    public int updateSysManager(SysManager sysManager)
    {
        sysManager.setUpdateTime(DateUtils.getNowDate());
        return sysManagerMapper.updateSysManager(sysManager);
    }

    /**
     * 批量删除系统管理员
     * 
     * @param userIds 需要删除的系统管理员ID
     * @return 结果
     */
    @Override
    public int deleteSysManagerByIds(Long[] userIds)
    {
        return sysManagerMapper.deleteSysManagerByIds(userIds);
    }

    /**
     * 删除系统管理员信息
     * 
     * @param userId 系统管理员ID
     * @return 结果
     */
    @Override
    public int deleteSysManagerById(Long userId)
    {
        return sysManagerMapper.deleteSysManagerById(userId);
    }
}
